package com.hci.mercatinidinatale;

import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.Set;

import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;

import android.app.ListActivity;
import android.content.Context;
import android.content.Intent;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.net.Uri;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.Button;
import android.widget.ListAdapter;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
import android.widget.ToggleButton;

import com.hci.mercatinidinatale.db.Mercatino;
import com.hci.mercatinidinatale.db.MyAdapter;
import com.hci.mercatinidinatale.db.XMLParser;

public class RicercaMercatino extends ListActivity implements OnClickListener
{
	
	ArrayList<Mercatino> mercatini;
	TextView txtRicercaMercatino;
	ToggleButton btnVediSuMappa;
	Button btnCerca;
	ListAdapter la;
	
	@Override
	protected void onCreate(Bundle savedInstanceState)
	{
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_ricerca_mercatino);
	
		mercatini = new ArrayList<Mercatino>();
		btnVediSuMappa = (ToggleButton)findViewById(R.id.btnVediSuMappa);
		btnCerca = (Button)findViewById(R.id.btnCerca);
		
		btnCerca.setOnClickListener(this);
		
		InputStream is = null;
		
		try
		{
			is = getResources().getAssets().open("mercatini/mercatini.xml");
		}
		catch (IOException e)
		{
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		XMLParser parser = new XMLParser();
		String xml = parser.setXml(is);
		Document doc = parser.getDomElement(xml);
		
		NodeList nl = doc.getElementsByTagName("item");
		for (int i = 0; i < nl.getLength(); i++)
		{
			Mercatino m = new Mercatino();
			Element e = (Element)nl.item(i);
			
			m.setId(parser.getValue(e, "id"));
			m.setNome(parser.getValue(e, "nome"));
			m.setLuogo(parser.getValue(e, "luogo"));
			m.setProvincia(parser.getValue(e, "provincia"));
			m.setIndirizzo(parser.getValue(e, "indirizzo"));
			m.setDataInizio(parser.getValue(e, "dataInizio"));
			m.setDataFine(parser.getValue(e, "dataFine"));
			m.setOraAperturaM(parser.getValue(e, "oraAperturaM"));
			m.setOraChiusuraP(parser.getValue(e, "oraChiusuraP"));
			m.setFoto(parser.getValue(e, "foto"));
			m.setLink(parser.getValue(e, "link"));

			mercatini.add(m);
		}
		
		la = new MyAdapter(this, mercatini);
		setListAdapter(la);
		
		ListView lv = getListView();
		lv.setOnItemClickListener(new OnItemClickListener()
		{
			@Override
			public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3)
			{
				Mercatino m = (Mercatino)arg0.getAdapter().getItem(arg2);
				Intent i;
				if(!btnVediSuMappa.isChecked())
				{
					i = new Intent(getApplicationContext(), InfoMercatino.class);
					i.putExtra("ricerca", txtRicercaMercatino.getText());
					i.putExtra("mercatino", m);
					startActivity(i);
				}
				else
				{
					i = new Intent(Intent.ACTION_VIEW);
					String a = m.getIndirizzo();
					a.replace(',', '+');
					i.setData(Uri.parse("geo:0,0?q=" + a));
					startActivity(i);
				}
			}
		});
	}
	@Override
	public void onClick(View v)
	{
		if(v.getId() == R.id.btnCerca)
		{
			Intent i = new Intent(this, RisultatiRicerca.class);
			i.putExtra("mercatini", mercatini);
			startActivity(i);
		}
	}
}
